(** 
    
    Le   module   Completer_distribution   permet   de   deviner   une
    distribution  possible des  cartes  des joueurs,  en fonction  des
    informations déjà disponibles.

 **)

(** 

    Levée  si vous  donnez des  informations contradictoires,  i.e. si
    aucune  distribution satisfaisant  toutes vos  conditions  n'a été
    trouvée.

**)
exception Insoluble

(** 

    Levée si on a buté 200 fois sur une distribution.

*)
exception Mal_parti

(**

   [completer_distribution n interdit obligatoire] retourne un tableau
   à 6  éléments : la main  de chacun des  joueurs et les 3  cartes du
   chien,  telle que  toutes les  informations de  la liste  info sont
   vérifiées, ou lève l'exception Insoluble. Chaque joueur obtient [n]
   cartes, sauf le chien qui en obtient 3.

   Les  informations   recueillies  sont   une  matrice   de  booléens
   [interdit], telle  que [interdit.(i).(j)]  vaut vrai ssi  le joueur
   [i] ne peut pas posséder  la carte [Carte.carte_of_int j] entre ses
   mains.

**)
val completer_distribution: int ->
			    bool array array ->
			    int list array
